package com.niiwoo.activity.stage.service.goods;

import com.niiwoo.activity.stage.dto.request.goods.GoodsCheckCodeReqDTO;
import com.niiwoo.activity.stage.dto.request.goods.GoodsEditReqDTO;
import com.niiwoo.activity.stage.dto.request.goods.GoodsQueryReqDTO;
import com.niiwoo.activity.stage.dto.request.goods.GoodsReqDTO;
import com.niiwoo.activity.stage.dto.response.goods.GoodsCheckRespDTO;
import com.niiwoo.activity.stage.dto.response.goods.GoodsDetailsRespDTO;
import com.niiwoo.activity.stage.dto.response.goods.GoodsRespDTO;
import com.niiwoo.tripod.provider.dto.response.PageResponseDTO;
import java.util.List;

/**
 * Created by dengyunhui on 2017/11/22.
 */
public interface GoodsDubboService {

    /**
     * 保存或修改奖品信息, 修改时id必传
     *
     * @param reqDTO
     * @return
     */
    void saveOrUpdate(GoodsReqDTO reqDTO);

    /**
     * 按条件查询奖品
     *
     * @param reqDTO
     * @return
     */
    List<GoodsRespDTO> getGoodsByCondition(GoodsQueryReqDTO reqDTO);

    /**
     * 分页查询奖品
     *
     * @param reqDTO
     * @return
     */
    PageResponseDTO<GoodsRespDTO> getGoodsPageList(GoodsQueryReqDTO reqDTO);

    /**
     * 获取奖品详情
     *
     * @param goodsId
     * @return
     */
    GoodsDetailsRespDTO getGoodsDetails(Integer goodsId);

    /**
     * 删除奖品
     *
     * @param reqDTO
     */
    void deleteGoods(GoodsEditReqDTO reqDTO);

    /**
     * 发布奖品
     *
     * @param reqDTO
     */
    void releaseGoods(GoodsEditReqDTO reqDTO);

    /**
     * 下架奖品
     *
     * @param reqDTO
     */
    void unShelveGoods(GoodsEditReqDTO reqDTO);

    /**
     * 检查商品代码是否存在
     * @param reqDTO
     */
    GoodsCheckRespDTO checkGoodsCodeExisted(GoodsCheckCodeReqDTO  reqDTO);
}
